package com.io.file;

import java.io.File;
import java.io.IOException;

/**
 * 操作文件
 *
 * @author jiangbang
 * @date 2016/6/2
 */
public class Demo1 {


    /**
     * 相对路径与绝对路径构建File对象
     * 1.相对路径
     * File(String paren,String child) ===> File("E:/xp/test","2.jpg")
     * File(FIle paren,String child) ===> File(new File("E:/xp/test"),"2.jpg")
     * 2.绝对路径
     * File(String name)
     */
    public void demo2(){
        String paren = "E:/xp/test";
        String name = "2.jsp";
        //相对路径
        File src = new File(paren,name);
        File src2 = new File(new File(paren),name);

        //绝对路径
        File src3 = new File("E:/xp/test/2.jpg");
        //没有盘符
        File src4 = new File("test.txt");
        File src5 = new File(".");
        System.out.println(src.getName());
        System.out.println(src.getPath());

    }
    /**
     *  两个常量
     *  File.pathSeparator
     *  File.separator
     *
     */
    public void demo1(){
        System.out.println(File.pathSeparator);   //支持跨平台的 ;
        System.out.println(File.separator); //支持跨平台的分割符 /
        //路径表示形式
        String path = "E:\\xp\\test\\2.jsp";
        path = "E:"+File.separator + "xp"+ File.separator + "test" + File.separator +"2.jsp";
        //推荐方式
        path = "E:/xp/test/2.jsp";
    }

    /**
     *  判断信息
     */
    public static void test2(){
        //String path = "D:/demo/1.txt";
        String path = "1.txt";
        File src = new File(path);
        System.out.println(src.exists());  //文件是否存在
        System.out.println(src.canWrite()); // 文件是否可写
    }

    /**
     *创建删除文件
     * @throws IOException
     */
    public static void test3() throws IOException, InterruptedException {
        String path = "D:/demo/2.txt";
        File src = new File(path);
        if(!src.exists()){ //判断文件
            boolean flag = src.createNewFile(); //创建文件
            System.out.println(flag?"成功":"失败");
        }

        boolean flag = src.delete();        //删除文件
        System.out.println(flag?"成功":"失败");

        File temp = File.createTempFile("test",".txt",new File("D:/demo")); //创建临时文件
        Thread.sleep(1000);
        temp.deleteOnExit(); //退出即删除
    }

    /**
     * 构建信息
     */
    public static void test1(){
        File src = new File("1.txt");
//        File src = new File("D:/demo/1.txt");
        System.out.println(src.getName()); // 返回名称
        System.out.println(src.getPath()); // 如果是绝对路径，返回完整路径，否则相对路径
        System.out.println(src.getAbsolutePath()); //返回绝对路径
        System.out.println(src.getParent());  //返回上一级目录，如果是相对的，返回null
    }

    public static void main(String[] args) {
        try {
            test3();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
